#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
#error meh!
#endif

//GO(__aeabi_f2lz, 
//GO(__aeabi_f2ulz, 
//GO(_fini, 
GO(g_array_get_type, iFv)
GO(g_binding_flags_get_type, iFv)
//GO(g_binding_get_flags, 
//GO(g_binding_get_source, 
//GO(g_binding_get_source_property, 
//GO(g_binding_get_target, 
//GO(g_binding_get_target_property, 
GO(g_binding_get_type, iFv)
//GO(g_binding_unbind, 
GO(g_boxed_copy, pFip)
GO(g_boxed_free, vFip)
GOM(g_boxed_type_register_static, iFEppp)
GO(g_byte_array_get_type, iFv)
GO(g_bytes_get_type, iFv)
DATA(g_cclosure_marshal_BOOLEAN__BOXED_BOXED, 4)    // set all cclosure_marshal as data, so they can be used "as-is" in cclosure parameter (not-wrapped)
DATA(g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv, 4)
DATA(g_cclosure_marshal_BOOLEAN__FLAGS, 4)
DATA(g_cclosure_marshal_BOOLEAN__FLAGSv, 4)
DATA(g_cclosure_marshal_generic, 4)
DATA(g_cclosure_marshal_generic_va, 4)
DATA(g_cclosure_marshal_STRING__OBJECT_POINTER, 4)
DATA(g_cclosure_marshal_STRING__OBJECT_POINTERv, 4)
DATA(g_cclosure_marshal_VOID__BOOLEAN, 4)
DATA(g_cclosure_marshal_VOID__BOOLEANv, 4)
DATA(g_cclosure_marshal_VOID__BOXED, 4)
DATA(g_cclosure_marshal_VOID__BOXEDv, 4)
DATA(g_cclosure_marshal_VOID__CHAR, 4)
DATA(g_cclosure_marshal_VOID__CHARv, 4)
DATA(g_cclosure_marshal_VOID__DOUBLE, 4)
DATA(g_cclosure_marshal_VOID__DOUBLEv, 4)
DATA(g_cclosure_marshal_VOID__ENUM, 4)
DATA(g_cclosure_marshal_VOID__ENUMv, 4)
DATA(g_cclosure_marshal_VOID__FLAGS, 4)
DATA(g_cclosure_marshal_VOID__FLAGSv, 4)
DATA(g_cclosure_marshal_VOID__FLOAT, 4)
DATA(g_cclosure_marshal_VOID__FLOATv, 4)
DATA(g_cclosure_marshal_VOID__INT, 4)
DATA(g_cclosure_marshal_VOID__INTv, 4)
DATA(g_cclosure_marshal_VOID__LONG, 4)
DATA(g_cclosure_marshal_VOID__LONGv, 4)
DATA(g_cclosure_marshal_VOID__OBJECT, 4)
DATA(g_cclosure_marshal_VOID__OBJECTv, 4)
DATA(g_cclosure_marshal_VOID__PARAM, 4)
DATA(g_cclosure_marshal_VOID__PARAMv, 4)
DATA(g_cclosure_marshal_VOID__POINTER, 4)
DATA(g_cclosure_marshal_VOID__POINTERv, 4)
DATA(g_cclosure_marshal_VOID__STRING, 4)
DATA(g_cclosure_marshal_VOID__STRINGv, 4)
DATA(g_cclosure_marshal_VOID__UCHAR, 4)
DATA(g_cclosure_marshal_VOID__UCHARv, 4)
DATA(g_cclosure_marshal_VOID__UINT, 4)
DATA(g_cclosure_marshal_VOID__UINT_POINTER, 4)
DATA(g_cclosure_marshal_VOID__UINT_POINTERv, 4)
DATA(g_cclosure_marshal_VOID__UINTv, 4)
DATA(g_cclosure_marshal_VOID__ULONG, 4)
DATA(g_cclosure_marshal_VOID__ULONGv, 4)
DATA(g_cclosure_marshal_VOID__VARIANT, 4)
DATA(g_cclosure_marshal_VOID__VARIANTv, 4)
DATA(g_cclosure_marshal_VOID__VOID, 4)
DATA(g_cclosure_marshal_VOID__VOIDv, 4)
//GO(g_cclosure_new, 
//GO(g_cclosure_new_object, 
//GO(g_cclosure_new_object_swap, 
//GO(g_cclosure_new_swap, 
//GO(g_checksum_get_type, 
GO(g_clear_object, vFp)
GOM(g_closure_add_finalize_notifier, vFEppp)
//GO(g_closure_add_invalidate_notifier, 
//GO(g_closure_add_marshal_guards, 
//GO(g_closure_get_type, 
//GO(g_closure_invalidate, 
//GO(g_closure_invoke, 
//GO(g_closure_new_object, 
GO(g_closure_new_simple, pFup)
//GO(g_closure_ref, 
//GO(g_closure_remove_finalize_notifier, 
//GO(g_closure_remove_invalidate_notifier, 
GOM(g_closure_set_marshal, vFEpp)
//GO(g_closure_set_meta_marshal, 
//GO(g_closure_sink, 
//GO(g_closure_unref, 
GO(g_date_get_type, iFv)
GO(g_date_time_get_type, iFv)
GO(g_enum_complete_type_info, vFipp)
GO(g_enum_get_value, pFpi)
GO(g_enum_get_value_by_name, pFpp)
GO(g_enum_get_value_by_nick, pFpp)
GO(g_enum_register_static, iFpp)
GO(g_error_get_type, iFv)
GO(g_flags_complete_type_info, vFipp)
GO(g_flags_get_first_value, pFpi)
GO(g_flags_get_value_by_name, pFpp)
GO(g_flags_get_value_by_nick, pFpp)
GO(g_flags_register_static, iFpp)
GO(g_gstring_get_type, iFv)
GO(g_gtype_get_type, iFv)
GO(g_hash_table_get_type, iFv)
GO(g_initially_unowned_get_type, iFv)
GO(g_io_channel_get_type, iFv)
GO(g_io_condition_get_type, iFv)
GO(g_key_file_get_type, iFv)
GO(g_main_context_get_type, iFv)
GO(g_main_loop_get_type, iFv)
GO(g_mapped_file_get_type, iFv)
GO(g_markup_parse_context_get_type, iFv)
GO(g_match_info_get_type, iFv)
//GOM(g_object_add_toggle_ref, vFEpBp)
GO(g_object_add_weak_pointer, vFpp)
//GO(g_object_bind_property, 
//GO(g_object_bind_property_full, 
//GO(g_object_bind_property_with_closures, 
GO(g_object_class_find_property, pFpp)
GO(g_object_class_install_properties, vFpup)
GO(g_object_class_install_property, vFpup)
GO(g_object_class_list_properties, pFpp)
GO(g_object_class_override_property, vFpup)
//GO(g_object_compat_control, 
GOM(g_object_connect, pFEppV)
GO(g_object_disconnect, vFpppppppppppppppp)   // caarg
//GOM(g_object_dup_data, pFEppBp)
//GOM(g_object_dup_qdata, pFEppBp)
GO(g_object_force_floating, vFp)
GO(g_object_freeze_notify, vFp)
GO2(g_object_get, vFppV, g_object_get_valist)
GO(g_object_get_data, pFpp)
GO(g_object_get_property, vFppG)
GO(g_object_get_qdata, pFpp)
GO(g_object_get_type, iFv)
GO(g_object_get_valist, vFppp)
GO(g_object_interface_find_property, pFpp)
GO(g_object_interface_install_property, vFpp)
GO(g_object_interface_list_properties, pFpp)
GO(g_object_is_floating, iFp)
GOM(g_object_new, pFEipV)
GO(g_object_newv, pFiup)
GO(g_object_new_valist, pFipp)
GO(g_object_notify, vFpp)
GO(g_object_notify_by_pspec, vFpp)
GO(g_object_ref, pFp)
GO(g_object_ref_sink, pFp)
//GOM(g_object_remove_toggle_ref, vFEpBp)
GO(g_object_remove_weak_pointer, vFpp)
//GOM(g_object_replace_data, iFEppppBB)
//GOM(g_object_replace_qdata, iFEppppBB)
GO(g_object_run_dispose, vFp)
GO2(g_object_set, vFppV, g_object_set_valist)
GO(g_object_set_data, vFppp)
GOM(g_object_set_data_full, vFEpppp)
GO(g_object_set_property, vFppG)
GO(g_object_set_qdata, vFppp)
//GOM(g_object_set_qdata_full, vFEpppB)
GO(g_object_set_valist, vFppp)
GO(g_object_steal_data, pFpp)
GO(g_object_steal_qdata, pFpp)
GO(g_object_thaw_notify, vFp)
GO(g_object_unref, vFp)
GO(g_object_watch_closure, vFpp)
//GOM(g_object_weak_ref, vFpBp)
GO(g_object_weak_unref, vFpp)
GO(g_param_spec_boolean, pFpppii)
GO(g_param_spec_boxed, pFpppii)
GO(g_param_spec_char, pFpppccci)
GO(g_param_spec_double, pFpppdddi)
GO(g_param_spec_enum, pFpppiii)
GO(g_param_spec_flags, pFpppiui)
GO(g_param_spec_float, pFpppfffi)
GO(g_param_spec_get_blurb, pFp)
GOM(g_param_spec_get_default_value, pFp) //%noE
GO(g_param_spec_get_name, pFp)
GO(g_param_spec_get_nick, pFp)
GO(g_param_spec_get_qdata, pFpu)
GO(g_param_spec_get_redirect_target, pFp)
GO(g_param_spec_gtype, pFpppii)
GO(g_param_spec_int, pFpppiiii)
GO(g_param_spec_int64, pFpppIIIi)
GO(g_param_spec_internal, pFipppu)
GO(g_param_spec_long, pFpppllli)
GO(g_param_spec_object, pFpppii)
GO(g_param_spec_override, pFpp)
GO(g_param_spec_param, pFpppii)
GO(g_param_spec_pointer, pFpppi)
GO(g_param_spec_pool_insert, vFppi)
GO(g_param_spec_pool_list, pFpip)
GO(g_param_spec_pool_list_owned, pFpi)
GO(g_param_spec_pool_lookup, pFppii)
GO(g_param_spec_pool_new, pFi)
GO(g_param_spec_pool_remove, vFpp)
GO(g_param_spec_ref, pFp)
GO(g_param_spec_ref_sink, pFp)
GO(g_param_spec_set_qdata, vFpup)
GOM(g_param_spec_set_qdata_full, vFEpupp)
GO(g_param_spec_sink, vFp)
GO(g_param_spec_steal_qdata, pFpu)
GO(g_param_spec_string, pFppppi)
GO(g_param_spec_uchar, pFpppCCCi)
GO(g_param_spec_uint, pFpppuuui)
GO(g_param_spec_uint64, pFpppUUUi)
GO(g_param_spec_ulong, pFpppLLLi)
GO(g_param_spec_unichar, pFpppui)
GO(g_param_spec_unref, vFp)
GO(g_param_spec_value_array, pFppppi)
GO(g_param_spec_variant, pFpppppi)
GOM(g_param_type_register_static, iFEpp)
GO(g_param_value_convert, iFpGGi)
GO(g_param_value_defaults, iFpG)
GO(g_param_values_cmp, iFpGG)
GO(g_param_value_set_default, vFpG)
GO(g_param_value_validate, iFpG)
//GO(g_pointer_type_register_static, 
//GO(g_pollfd_get_type, 
//GO(g_ptr_array_get_type, 
//GO(g_regex_get_type, 
GO(g_signal_accumulator_first_wins, iFpppp)
GO(g_signal_accumulator_true_handled, iFpppp)
GOM(g_signal_add_emission_hook, LFEupppp)
GO(g_signal_chain_from_overridden, vFpp)
GO(g_signal_chain_from_overridden_handler, vFpppppppppp)  //vaarg
GO(g_signal_connect_closure, LFpppi)
GO(g_signal_connect_closure_by_id, LFpuppi)
GOM(g_signal_connect_data, LFEpppppu)
GOM(g_signal_connect_object, LFEppppi)
GO2(g_signal_emit, vFpuuV, g_signal_emit_valist) // vaarg
GO(g_signal_emit_by_name, vFppppppppppp)    //vaarg
GO(g_signal_emitv, vFpuup)
GO(g_signal_emit_valist, vFppup)    // va_list here
GO(g_signal_get_invocation_hint, pFp)
GO(g_signal_handler_block, vFpL)
GO(g_signal_handler_disconnect, vFpL)
GOM(g_signal_handler_find, LFEpiupppp)
GO(g_signal_handler_is_connected, iFpL)
GOM(g_signal_handlers_block_matched, uFEpiupppp)
//GO(g_signal_handlers_destroy, 
GOM(g_signal_handlers_disconnect_matched, uFEpiupppp)
GOM(g_signal_handlers_unblock_matched, uFEpiupppp)
GO(g_signal_handler_unblock, vFpL)
GO(g_signal_has_handler_pending, iFpupi)
GO(g_signal_list_ids, pFip)
GO(g_signal_lookup, uFpi)
GO(g_signal_name, pFu)
GOM(g_signal_new, uFEpiiupppiuV)
//GOM(g_signal_new_class_handler, uFEpiupppppnV)
GOM(g_signal_newv, uFEpiippppiup)
GOM(g_signal_new_valist, uFEpiippppiup)
GO(g_signal_override_class_closure, vFuip)
//GOM(g_signal_override_class_handler, vFEppB)
GO(g_signal_parse_name, iFpippi)
GO(g_signal_query, vFup)
GO(g_signal_remove_emission_hook, vFpL)
//GOM(g_signal_set_va_marshaller, vFEuiB)
GO(g_signal_stop_emission, vFpup)
GO(g_signal_stop_emission_by_name, vFpp)
GO(g_signal_type_cclosure_new, pFiu)    //should wrap?
GO(g_source_get_type, iFv)
GO(g_source_set_closure, vFpp)
//GO(g_source_set_dummy_callback, 
GO(g_strdup_value_contents, pFG)
GO(g_strv_get_type, iFv)
GO(g_thread_get_type, iFv)
GO(g_time_zone_get_type, iFv)
//GOM(g_type_add_class_cache_func, vFEpB)
GO(g_type_add_class_private, vFpiu)
GO(g_type_add_instance_private, iFLL)
//GOM(g_type_add_interface_check, vFEpB)
//GOM(g_type_add_interface_dynamic, vFEiip)
GOM(g_type_add_interface_static, vFEiip)
GO(g_type_check_class_cast, pFpi)
GO(g_type_check_class_is_a, iFpi)
GO(g_type_check_instance, iFp)
GO(g_type_check_instance_cast, pFpi)
GO(g_type_check_instance_is_a, iFpi)
GO(g_type_check_instance_is_fundamentally_a, iFpi)
GO(g_type_check_is_value_type, iFpi)
GO(g_type_check_value, iFp)
GO(g_type_check_value_holds, iFpi)
GO(g_type_children, pFLp)
GO(g_type_class_add_private, vFpu)
GO(g_type_class_adjust_private_offset, vFpp)
GO(g_type_class_get_instance_private_offset, iFp)
GO(g_type_class_get_private, pFpi)
GO(g_type_class_peek, pFL)
GOM(g_type_class_peek_parent, pFEp)
GO(g_type_class_peek_static, pFL)
GO(g_type_class_ref, pFp)
GO(g_type_class_unref, vFp)
GO(g_type_class_unref_uncached, vFp)
GO(g_type_create_instance, pFi)
GO(g_type_default_interface_peek, pFi)
GO(g_type_default_interface_ref, pFL)
GO(g_type_default_interface_unref, vFp)
GO(g_type_depth, uFi)
GO(g_type_ensure, vFL)
GO(g_type_free_instance, vFp)
GO(g_type_from_name, LFp)
GO(g_type_fundamental, iFi)
GO(g_type_fundamental_next, LFv)
//GOM(g_type_get_plugin, pFEi)      // GTypePugin is a stuct with callback
GO(g_type_get_qdata, pFip)
GO(g_type_get_type_registration_serial, uFv)
GO(g_type_init, vFv)
GO(g_type_init_with_debug_flags, vFi)
GO(g_type_instance_get_private, pFpi)
GO(g_type_interface_add_prerequisite, vFii)
//GOM(g_type_interface_get_plugin, pFEii) // return GTypePlugin*
GO(g_type_interface_peek, pFpi)
GO(g_type_interface_peek_parent, pFp)
GO(g_type_interface_prerequisites, pFip)
GO(g_type_interfaces, pFip)
GO(g_type_is_a, iFii)
//GO(g_type_module_add_interface, 
//GO(g_type_module_get_type, 
//GO(g_type_module_register_enum, 
//GO(g_type_module_register_flags, 
//GO(g_type_module_register_type, 
//GO(g_type_module_set_name, 
//GO(g_type_module_unuse, 
//GO(g_type_module_use, 
GO(g_type_name, pFi)
//GO(g_type_name_from_class, 
//GO(g_type_name_from_instance, 
GO(g_type_next_base, iFii)
GO(g_type_parent, iFi)
//GO(g_type_plugin_complete_interface_info, 
//GO(g_type_plugin_complete_type_info, 
//GO(g_type_plugin_get_type, 
//GO(g_type_plugin_unuse, 
//GO(g_type_plugin_use, 
GO(g_type_qname, pFi)
GO(g_type_query, vFip)
//GOM(type_register_dynamic, iFEpippi)
GOM(g_type_register_fundamental, iFEipppi)
GOM(g_type_register_static, iFEippi)
GOM(g_type_register_static_simple, iFEipupupi)
//GOM(g_type_remove_class_cache_func, vFEpB)
//GOM(g_type_remove_interface_check, vFEpB)
GO(g_type_set_qdata, vFipp)
GO(g_type_test_flags, iFiu)
//GOM(g_type_value_table_peek, pFEi)    //need to bridge GTypeValueTable
GO(g_value_array_append, pFpp)  //TODO: does GValueArray needs alignement?
GO(g_value_array_copy, pFp)
GO(g_value_array_free, vFp)
GO(g_value_array_get_nth, pFpu)
GO(g_value_array_get_type, iFv)
GO(g_value_array_insert, pFpuG)
GO(g_value_array_new, pFu)
GO(g_value_array_prepend, pFpG)
GO(g_value_array_remove, pFpu)
GOM(g_value_array_sort, pFEpp)  // TODO: need to use a CompareFunct with GValue alignment work
GOM(g_value_array_sort_with_data, pFEppp)   //TODO: same here
GO(g_value_copy, vFGG)
GO(g_value_dup_boxed, pFG)
GO(g_value_dup_object, pFG)
GO(g_value_dup_param, pFG)
GO(g_value_dup_string, pFG)
GO(g_value_dup_variant, pFG)
GO(g_value_fits_pointer, iFG)
GO(g_value_get_boolean, iFG)
GO(g_value_get_boxed, pFG)
GO(g_value_get_char, CFG)
GO(g_value_get_double, dFG)
GO(g_value_get_enum, iFG)
GO(g_value_get_flags, uFG)
GO(g_value_get_float, fFG)
GO(g_value_get_gtype, iFG)
GO(g_value_get_int, iFG)
GO(g_value_get_int64, IFG)
GO(g_value_get_long, lFG)
GO(g_value_get_object, pFG)
GO(g_value_get_param, pFG)
GO(g_value_get_pointer, pFG)
GO(g_value_get_schar, cFG)
GO(g_value_get_string, pFG)
GO(g_value_get_type, iFv)
GO(g_value_get_uchar, CFG)
GO(g_value_get_uint, uFG)
GO(g_value_get_uint64, UFG)
GO(g_value_get_ulong, LFG)
GO(g_value_get_variant, pFG)
GOM(g_value_init, pFpi) //%noE
GO(g_value_init_from_instance, vFGp)
GO(g_value_peek_pointer, pFG)
GOM(g_value_register_transform_func, vFEiip)
GOM(g_value_reset, pFp) //%noE
GO(g_value_set_boolean, vFGi)
GO(g_value_set_boxed, vFGp)
GO(g_value_set_boxed_take_ownership, vFGp)
GO(g_value_set_char, vFGC)
GO(g_value_set_double, vFGd)
GO(g_value_set_enum, vFGi)
GO(g_value_set_flags, vFGu)
GO(g_value_set_float, vFGf)
GO(g_value_set_gtype, vFGi)
GO(g_value_set_instance, vFGp)
GO(g_value_set_int, vFGi)
GO(g_value_set_int64, vFGI)
GO(g_value_set_long, vFGl)
GO(g_value_set_object, vFGp)
GO(g_value_set_object_take_ownership, vFGp)
GO(g_value_set_param, vFGp)
GO(g_value_set_param_take_ownership, vFGp)
GO(g_value_set_pointer, vFGp)
GO(g_value_set_schar, vFGc)
GO(g_value_set_static_boxed, vFGp)
GO(g_value_set_static_string, vFGp)
GO(g_value_set_string, vFGp)
GO(g_value_set_string_take_ownership, vFGp)
GO(g_value_set_uchar, vFGC)
GO(g_value_set_uint, vFGu)
GO(g_value_set_uint64, vFGU)
GO(g_value_set_ulong, vFGL)
GO(g_value_set_variant, vFGp)
GO(g_value_take_boxed, vFGp)
GO(g_value_take_object, vFGp)
GO(g_value_take_param, vFGp)
GO(g_value_take_string, vFGp)
GO(g_value_take_variant, vFGp)
GO(g_value_transform, iFGG)
GO(g_value_type_compatible, iFii)
GO(g_value_type_transformable, iFii)
GO(g_value_unset, vFG)
//GO(g_variant_builder_get_type, 
//GO(g_variant_dict_get_type, 
//GO(g_variant_get_gtype, 
//GO(g_variant_type_get_gtype, 
//GO(g_weak_ref_clear, 
//GO(g_weak_ref_get, 
//GO(g_weak_ref_init, 
//GO(g_weak_ref_set, 
//GO(_init, 

// to have some wrapper created for gtkclass.c
GO(dummy_set_property, vFpupp)  
GO(dummy_drag_data_get, vFpppuu)
GO(dummy_drag_motion, iFppiiu)
GO(dummy_drag_data_received, vFppiipuu)
GO(dummy_marshal, vFppuppp)
GO(dummy_marshalv, vFpppppip)
